package com.cty.service.impl;

import com.cty.dao.UserDao;
import com.cty.dao.impl.UserDaoImpl;
import com.cty.pojo.User;
import com.cty.service.UserService;
import org.apache.log4j.Logger;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @Auther: cty
 * @Date: 2020/2/22 10:29
 * @Description:
 * @version: 1.0
 */
public class UserServiceImpl implements UserService {
    static Logger logger = Logger.getLogger(UserServiceImpl.class);
    UserDao ud = new UserDaoImpl();

    /**
     * 用户登录校验服务
     * @param uname
     * @param pwd
     * @return
     */
    @Override
    public User checkUserLoginService(String uname, String pwd) {
        // 打印日志
        logger.debug(uname+"发起登录请求");
        // dao层获取用户数据
        User user = ud.checkUserLoginDao(uname, pwd);
        // 判断登录是否成功
        if(null!=user){
            logger.debug(uname+"登录成功");
        }else {
            logger.debug(uname+"登录失败");
        }
        return user;
    }

    /**
     * 用户修改密码服务
     * @param uid
     * @param uname
     * @param newPwd
     * @return
     */
    @Override
    public int pwdChangeService(int uid, String uname, String newPwd) {
        // 打印日志
        logger.debug(uname+"发起修改密码请求");
        // 调用dao层方法进行用户密码修改
        int index = ud.userChangePwd(uid, newPwd);
        // 判断登录是否成功
        if(index > 0){
            logger.debug(uname+"修改密码成功");
        }else {
            logger.debug(uname+"修改密码失败");
        }
        // 返回更新的行数
        return index;
    }

    /**
     * 获取所有用户信息服务
     * @return
     */
    @Override
    public List<User> userShowService() {
        List<User> lu = ud.userShowDao();
        logger.info("用户信息为："+lu);
        return lu;
    }

    /**
     * 用户注册服务
     * @param req
     * @param resp
     * @return
     */
    @Override
    public int userRegService(HttpServletRequest req, HttpServletResponse resp) {
        // 打印日志
        User user = (User)req.getAttribute("user");
        logger.debug(user.getUname()+"发起注册用户请求");
        // 调用dao层方法存入注册用户信息
        int index = ud.userRegDao(req, resp);
        // 判断
        if(index > 0){
            logger.debug(user.getUname()+"注册成功");
        }else {
            logger.debug(user.getUname()+"注册失败");
        }
        return index;
    }
}
